#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <list>
#include <vector>
#include <deque>
using namespace std;
namespace lnb
{
	template<class T, class Container = deque<T>>
	class queue
	{
	public:
		void push(const T& val)
		{
			_con.push_back(val);
		}

		void pop()
		{
			_con.pop_front();
		}

		size_t size()
		{
			return _con.size();
		}

		bool empty()
		{
			return _con.empty();
		}

		T& front()
		{
			return _con[0];
		}

		T& back()
		{
			return _con[size() - 1];
		}

	private:
		Container _con;
	};


	void QueueTest()
	{
		queue<int> qu;
		qu.push(3);
		qu.push(4);
		qu.push(2);
		qu.push(0);
		qu.push(9);
		qu.push(20);
		while (!qu.empty())
		{
			cout << qu.front() << endl;
			qu.pop();
		}


	}



}